/*
Copyright (c) [2019年5月1日] [吴超]
[MBT_Studio] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
		 http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
*/
#pragma once

#include "基本类型.h"
#include "字符串转换.h"


#include <vector>
#include "向量.h"


#define DEF_多维类型构建1D( t ) std::vector<t>
#define DEF_多维类型构建2D( t ) std::vector<std::vector<t>>
#define DEF_多维类型构建3D( t ) std::vector<std::vector<std::vector<t>>>
#define DEF_多维类型构建4D( t ) std::vector<std::vector<std::vector<std::vector<t>>>>
#define DEF_多维类型构建5D( t ) std::vector<std::vector<std::vector<std::vector<std::vector<t>>>>>

typedef DEF_多维类型构建1D(float32) t_F32a1D;
typedef DEF_多维类型构建2D(float32) t_F32a2D;
typedef DEF_多维类型构建3D(float32) t_F32a3D;
typedef DEF_多维类型构建4D(float32) t_F32a4D;



union U_插座数据类型 {
	bool			m_ValueBool;
	float32			m_ValueF32;
	int32			m_ValueI32;
	uint32			m_ValueUI32;
	int64			m_ValueI64;
	uint64			m_ValueUI64;

	t_F32a1D							m_ValueF32a1D;
	std::vector<std::vector<float32>>					m_ValueF32a2D;
	std::vector<std::vector<std::vector<float32>>>			m_ValueF32a3D;
	std::vector<std::vector<std::vector<std::vector<float32>>>>	m_ValueF32a4D;

	DEF_多维类型构建1D(int32) m_ValueI32a1D;
	DEF_多维类型构建2D(int32) m_ValueI32a2D;
	DEF_多维类型构建3D(int32) m_ValueI32a3D;
	DEF_多维类型构建4D(int32) m_ValueI32a4D;

	DEF_多维类型构建1D(uint32) m_ValueU32a1D;
	DEF_多维类型构建2D(uint32) m_ValueU32a2D;
	DEF_多维类型构建3D(uint32) m_ValueU32a3D;
	DEF_多维类型构建4D(uint32) m_ValueU32a4D;

	DEF_多维类型构建1D(vec2) m_ValueVec2a1D;
	DEF_多维类型构建2D(vec2) m_ValueVec2a2D;
	DEF_多维类型构建3D(vec2) m_ValueVec2a3D;
	DEF_多维类型构建4D(vec2) m_ValueVec2a4D;

	DEF_多维类型构建1D(vec3) m_ValueVec3a1D;
	DEF_多维类型构建2D(vec3) m_ValueVec3a2D;
	DEF_多维类型构建3D(vec3) m_ValueVec3a3D;
	DEF_多维类型构建4D(vec3) m_ValueVec3a4D;

	DEF_多维类型构建1D(vec4) m_ValueVec4a1D;
	DEF_多维类型构建2D(vec4) m_ValueVec4a2D;
	DEF_多维类型构建3D(vec4) m_ValueVec4a3D;
	DEF_多维类型构建4D(vec4) m_ValueVec4a4D;
	




	U_插座数据类型();
	~U_插座数据类型();
};




